Systems and methods for locating objects

ABSTRACT

In one embodiment, a method includes receiving an image generated by a camera associated with a vehicle. The image includes a point of interest (POI) associated with a physical object. The method also includes determining a number of pixels from the POI of the image to an edge of the image. The edge of the image represents a location of the camera. The method further includes determining an offset distance from the POI to a Global Positioning System (GPS) unit associated with the vehicle using the number of pixels.

PRIORITY

This application is a continuation under 35 U.S.C. § 120 of U.S. patentapplication Ser. No. 16/540,867 filed Aug. 14, 2019 and entitled“SYSTEMS AND METHODS FOR LOCATING OBJECTS”, which is hereby incorporatedby reference in its entirety.

TECHNICAL FIELD

This disclosure generally relates to locating objects, and morespecifically to systems and methods for locating objects.

BACKGROUND

Positive train control (PTC) is a communications-based train controlsystem used to prevent accidents involving trains. PTC improves thesafety of railway traffic by monitoring the locations of PTC criticalassets within a railroad environment. However, the locations of the PTCcritical assets may be misrepresented due to field error and/or changeswithin the railroad environment, which may negatively affect theperformance of the PTC system.

SUMMARY

According to an embodiment, a method includes receiving an imagegenerated by a camera associated with a vehicle. The image includes apoint of interest (POI) associated with a physical object. The methodalso includes determining a number of pixels from the POI of the imageto an edge of the image. The edge of the image represents a location ofthe camera. The method further includes determining an offset distancefrom the POI to a Global Positioning System (GPS) unit associated withthe vehicle using the number of pixels.

According to another embodiment, a system includes one or moreprocessors and a memory storing instructions that, when executed by theone or more processors, cause the one or more processors to performoperations including receiving an image generated by a camera associatedwith a vehicle. The image includes a POI associated with a physicalobject. The operations also include determining a number of pixels fromthe POI of the image to an edge of the image. The edge of the imagerepresents a location of the camera. The operations further includedetermining an offset distance from the POI to a GPS unit associatedwith the vehicle using the number of pixels.

According to yet another embodiment, one or more computer-readablestorage media embody instructions that, when executed by a processor,cause the processor to perform operations including receiving an imagegenerated by a camera associated with a vehicle. The image includes aPOI associated with a physical object. The operations also includedetermining a number of pixels from the POI of the image to an edge ofthe image. The edge of the image represents a location of the camera.The operations further include determining an offset distance from thePOI to a GPS unit associated with the vehicle using the number ofpixels.

Technical advantages of certain embodiments of this disclosure mayinclude one or more of the following. Certain systems and methodsdescribed herein locate objects (e.g., PTC critical assets) within arailroad environment without manual measurements on or near therailroad, which improves the safety and efficiency of locating objects.Certain systems and methods described herein leverage informationcollected from geometry cars, such as images and GPS locations, whichimproves the accuracy of locating objects.

Other technical advantages will be readily apparent to one skilled inthe art from the following figures, descriptions, and claims. Moreover,while specific advantages have been enumerated above, variousembodiments may include all, some, or none of the enumerated advantages.

BRIEF DESCRIPTION OF THE DRAWINGS

To assist in understanding the present disclosure, reference is now madeto the following description taken in conjunction with the accompanyingdrawings, in which:

FIG. 1 illustrates an example system for locating objects;

FIG. 2 illustrates another example system for locating objects;

FIG. 3 illustrates an example image that may be used by the systems ofFIGS. 1 and 2 ;

FIG. 4 illustrates an example output that may be generated by thesystems of FIGS. 1 and 2 ;

FIG. 5 illustrates an example method for locating objects; and

FIG. 6 illustrates an example computer system that may be used by thesystems and methods described herein.

DETAILED DESCRIPTION

A vehicle such as track geometry car may collect data as the vehicletravels through an environment. The vehicle may be equipped with acamera that captures images of physical objects within the environmentand a GPS unit that captures GPS locations. To accurately locate thephysical objects within the environment, the GPS locations need to becalibrated to account for the offset distance between the cameralocation and the location of the GPS unit. Certain embodiments of thisdisclosure include systems and methods for accurately locating objectswithin an environment using data collected from the camera and the GPSunit to determine the offset distance. The objects may be PTC criticalobjects associated with a railroad environment that are monitored forPTC compliance.

FIGS. 1 through 6 show example systems and methods for locating objects.FIGS. 1 and 2 show example systems for locating objects. FIG. 3 shows anexample image that may be used by the systems of FIGS. 1 and 2 and FIG.4 shows an example output that may be generated by the systems of FIGS.1 and 2 . FIG. 5 shows an example method for locating objects. FIG. 6illustrates an example computer system that may be used by the systemsand methods described herein.

FIG. 1 illustrates an example system 100 for locating objects. System100 of FIG. 1 includes a network 110, a locator module 120, a vehicle130, a camera 140, a GPS unit 150, and a physical object 160. System 100or portions thereof may be associated with an entity, which may includeany entity, such as a business, company (e.g., a railway company, atransportation company, etc.), or a government agency (e.g., adepartment of transportation, a department of public safety, etc.) thatmay locate objects. The elements of system 100 may be implemented usingany suitable combination of hardware, firmware, and software.

Network 110 of system 100 may be any type of network that facilitatescommunication between components of system 100. Network 110 may connectlocator module 120 to camera 140 and/or GPS unit 150 of system 100.Although this disclosure shows network 110 as being a particular kind ofnetwork, this disclosure contemplates any suitable network. One or moreportions of network 110 may include an ad-hoc network, an intranet, anextranet, a virtual private network (VPN), a local area network (LAN), awireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), ametropolitan area network (MAN), a portion of the Internet, a portion ofthe Public Switched Telephone Network (PSTN), a cellular telephonenetwork, a 3G network, a 4G network, a 5G network, a Long Term Evolution(LTE) cellular network, a combination of two or more of these, or othersuitable types of networks. One or more portions of network 110 mayinclude one or more access (e.g., mobile access), core, and/or edgenetworks. Network 110 may be any communications network, such as aprivate network, a public network, a connection through Internet, amobile network, a WI-FI network, a Bluetooth network, etc. Network 110may include cloud computing capabilities. One or more components ofsystem 100 may communicate over network 110. For example, locator module120 may communicate over network 110, including receiving informationfrom camera 140 and/or GPS unit 150.

Locator module 120 of system 100 represents any suitable computingcomponent that may be used to locate objects. Locator module 120 may becommunicatively coupled to camera 140 and/or GPS unit 150 via network110. Locator module 120 controls the operations of system 100. Locatormodule 120 is described in more detail in FIG. 2 below.

Vehicle 130 of system 100 represents a vehicle (e.g., a van, a truck, acar, a rail car, etc.) that collects data. In the illustrated embodimentof FIG. 1 , vehicle 130 is an automated track inspection vehicle (e.g.,a track geometry car) that travels along railroad track 180. Vehicle 180may collect data associated with a railroad environment. For example,one or more components of vehicle 180 may collect images and/or sensordata associated with the railroad environment as vehicle 180 travelsalong railroad track 180. The collected data may be used to locateobjects within a railroad environment.

Camera 140 of system 100 is any device that records visual images.Camera 140 may be a video camera such as a digital camera, a digitalsingle-lens reflex (DSLR) camera, a mirrorless video camera, a sportsand action video camera, and the like. Camera 140 is physically attachedto vehicle 130. In the illustrated embodiment of FIG. 1 , camera 140 ismounted to a top, front end portion of vehicle 130. Camera 140 isoriented such that the camera view angle 142 of camera 140 capturesphysical object 160 and track 180. Camera 140 captures images (see,e.g., image 300 of FIG. 3 ) of physical object 160 and track 180 asvehicle 130 travels along track 180. The images captured by camera 140depend on camera view angle 142. Camera view angle 142 is influenced bythe position of camera 140 relative to vehicle 130 and/or track 180.Camera 140 may communicate the generated images to locator module 120via network 110.

GPS unit 150 of system 100 is any device that receives information fromone or more GPS satellites and calculates the geographical position ofGPS unit 150 using the received information. GPS unit 150 may be a GPStracking unit (e.g., a data logger, a data pusher, a data puller, andthe like) carried by vehicle 130 that uses GPS to track the movements ofGPS unit 150 and determine the location of GPS unit 150 at a specificpoint in time. GPS unit 150 may include one or more GPS sensors,receivers, and/or antennas. GPS unit 150 is physically attached tovehicle 130. In the illustrated embodiment of FIG. 1 , GPS unit 150 ismounted to a center top portion of vehicle 130. GPS unit 150 maycommunicate one or more GPS locations of GPS unit 150 to locator module120 via network 110. Each GPS location may be represented by coordinates(e.g., a latitude coordinate and a longitude coordinate) or any othersuitable representation.

Physical object 160 of system 100 represents any physical objectassociated with a railroad environment. The railroad environment is anarea encompassing one or more railroad tracks 180. Physical object 160may be a train-controlled signal, a switch point, a crossing, a milepost sign, a speed sign, a clearance point, and the like. In certainembodiments, physical object 160 represents a PTC critical asset. PTC isa system of functional requirements for monitoring and controlling trainmovements.

Locator module 120 determines a geographical location of physical object160 using one or more images captured by camera 140 and a GPS locationcaptured by GPS unit 150. Locator module 120 may determine thegeographical location of physical object 160 relative to a centerline ofrailroad track 180. The centerline of railroad track 180 is a line thatis centered between the two outer rails of railroad track 180. Locatormodule 120 may use the railroad track centerline as a reference line forlocating physical objects 160. In certain embodiments, locator module120 detects an object (e.g., a representation of physical object 160) inan image received from camera 140 and determines an object point ofinterest (POI) in the detected object of the image. The object POIrepresents a specific point within the detected object of the image.Locator module 120 may map the object POI to a centerline of a railroadtrack (e.g., a representation of railroad track 180) in the image togenerate a POI. The POI represents a location of physical object 160transposed to the centerline of railroad track 180.

Locator module 120 may determine first distance 190 from the POI (whichcorresponds to the location of physical object 160 along the centerlineof track 180) to camera 140. Locator module 120 determines firstdistance 190 by calculating a number of pixels from the POI of the imageto an edge of the image. The edge of the image represents a location ofcamera 140 (e.g., a location of a lens of camera 140). Locator module120 then converts the number of pixels to an equivalent distance usingcamera view angle 142.

Locator module 120 may determine a second distance 192 from camera 140to GPS unit 150. Second distance 192 depends on the relative locationsof camera 140 and GPS unit 150. In the illustrated embodiment of FIG. 1, second distance 192 is a predetermined distance measured from camera140 attached to a top, front end of vehicle 130 to GPS unit 150 attachedto a top, center portion of vehicle 130. In certain embodiments, seconddistance 192 is measured from a lens of camera 140 to an antenna of GPSunit 150. Second distance 192 may be approximately equal to half alength of vehicle 130 (e.g., a geometry car). For example, seconddistance 192 may be between 200 and 230 inches (e.g., 216 inches.)

Locator module 120 may add first distance 190 to second distance 192 todetermine offset distance 194. Offset distance 194 represents thedistance from a location of physical object 160 transposed to thecenterline of railroad track 180 to GPS unit 150. Since the image ofphysical object 160 and the GPS location of GPS unit 150 are captured bycamera 140 and GPS unit 150, respectively, at the same or approximatelythe same point in time, the GPS location does not accurately reflect thelocation of physical object 160. Offset distance 194 accounts for thedifference between the location of physical object 160 and the GPSlocation of GPS unit 150 at a specific point in time.

In operation, locator module 120 receives a GPS location generated byGPS unit 150 mounted to vehicle 130 and an image generated by camera 140mounted to vehicle 130. The GPS location and the image are captured atthe same point in time. Locator module 120 detects an object (e.g., arepresentation of physical object 160) in the image and determines anobject POI in the detected object of the image. Locator module 120 mapsthe object POI to a centerline of a railroad track (e.g., arepresentation of railroad track 180) in the image to generate a POI.The POI represents the location of physical object 160 as transposed tothe centerline of track 180. Locator module 120 determines a number ofpixels from the POI of the image to an edge of the image. Locator module120 determines first distance 190 from the POI to camera 140 using thenumber of pixels and camera view angle 142 and determines seconddistance 192 from camera 140 to GPS unit 150. Locator module 120 addsfirst distance 190 to second distance 192 to determine offset distance194. Locator module 120 modifies the GPS location based on the offsetdistance to determine a geographical POI location associated withphysical object 160. As such, system 100 of FIG. 1 locates objectswithout manual measurements on or near the railroad, which improves thesafety and efficiency of locating objects.

Although FIG. 1 illustrates a particular number of networks 110, locatormodules 120, vehicles 130, cameras 140, GPS units 150, and physicalobjects 160, this disclosure contemplates any suitable number ofnetworks 110, locator modules 120, vehicles 130, cameras 140, GPS units150, and physical objects 160. For example, system 100 of FIG. 1 mayinclude more than one camera 140 and/or GPS unit 150. Although FIG. 1illustrates a particular arrangement of network 110, locator module 120,vehicle 130, camera 140, GPS unit 150, and physical object 160, thisdisclosure contemplates any suitable arrangement of network 110, locatormodule 120, vehicle 130, camera 140, GPS unit 150, and physical objects160. For example, GPS unit 150 may be mounted to a rear portion ofvehicle 130. As another example, camera 140 and/or GPS unit 150 may bean integral part of vehicle 130. One or more components of system 100may be implemented using one or more components of the computer systemof FIG. 6 . System 100 of FIG. 1 may utilize one or more programs toperform one or more operations. For example, locator module 120 may usea geographic information system (GIS), visualization software, aninternet service program, and the like.

Although FIG. 1 describes system 100 for locating objects within arailroad environment, one or more components of system 100 may beapplied to other implementations. For example, one or more components ofsystem 100 may be utilized for locating objects along a highway, acanal, a trail, a pipeline, and the like.

FIG. 2 illustrates an example system 200 for locating objects that maybe used by system 100 of FIG. 1 . System 200 or portions thereof may beassociated with an entity, which may include any entity, such as abusiness, company (e.g., a railway company, a transportation company,etc.), or a government agency (e.g., a department of transportation, adepartment of public safety, etc.) that may locate objects. The elementsof system 200 may be implemented using any suitable combination ofhardware, firmware, and software. System 200 of FIG. 2 includes network110, locator module 120, camera 140, and GPS unit 150. Locator module120 of system 200 includes an interface 222, a memory 224, and aprocessor 226.

Interface 222 of locator module 120 represents any suitable computerelement that can receive information from network 110, transmitinformation through network 110, perform suitable processing of theinformation, communicate to other components (e.g., camera 140 and GPSunit 150) of system 200 of FIG. 2 , or any combination of the preceding.Interface 222 represents any port or connection, real or virtual,including any suitable combination of hardware, firmware, and software,including protocol conversion and data processing capabilities, tocommunicate through a LAN, a WAN, or other communication system thatallows system 200 of FIG. 2 to exchange information between componentsof system 100.

Memory 224 of locator module 120 stores, permanently and/or temporarily,received and transmitted information, as well as system software,control software, other software for locator module 120, and a varietyof other information. Memory 224 may store information for execution byprocessor 226. Memory 224 includes any one or a combination of volatileor non-volatile local or remote devices suitable for storinginformation. Memory 224 may include Random Access Memory (RAM),Read-only Memory (ROM), magnetic storage devices, optical storagedevices, or any other suitable information storage device or acombination of these devices. Memory 224 may include any suitableinformation for use in the operation of locator module 120.Additionally, memory 224 may be a component external to (or may bepartially external to) locator module 120. Memory 224 may be located atany location suitable for memory 224 to communicate with locator module120. In the illustrated embodiment of FIG. 2 , memory 224 of locatormodule 120 stores a data collection engine 230, a pixel engine 232, alocator engine 234, a comparison engine 236, and a database 250. Incertain embodiments, data collection engine 230, pixel engine 232,locator engine 234, comparison engine 236, and/or database 250 may beexternal to memory 224 and/or locator module 120.

Data collection engine 230 of locator module 120 is an application thatcollects data from one or more components of system 100. Data collectionengine 230 may collect data from GPS unit 150, camera 140, anadministrator, and the like. Data collection engine 230 may receive oneor more images 252 from camera 140 of system 200 via network 110. Images252 represent the views of the environment captured by camera 140. Eachimage 252 may include a representation of a physical object and arailroad track (e.g., physical object 160 and railroad track 180 of FIG.1 ). Data collection engine 230 may receive one or more GPS locations258 from GPS unit 150. Each GPS location 258 may be represented bycoordinates (e.g., a latitude coordinate and a longitude coordinate) orany other suitable representation. Data collection engine 230 maycollect data associated with a travel direction of vehicle 130 of FIG. 1. For example, data collection engine 230 may receive a travel direction(e.g., north or south) of vehicle 130 from an administrator, a motionsensor associated with vehicle 130, and the like.

In certain embodiments, data collection engine 230 detects an object(e.g., object 310 of FIG. 3 ) in image 252 representative of physicalobject 160 of FIG. 1 . Data collection engine 230 determines an objectPOI 254 in the detected object of image 252. Object POI 254 represents aspecific reference point within the detected object of image 252. Datacollection engine 230 maps object POI 254 to a centerline of a railroadtrack (e.g., a representation of railroad track 180 of FIG. 1 ) in image252 to generate POI 256. POI 256 represents a location of physicalobject 260 transposed to the centerline of the railroad track. Theprocess of generating POI 256 of image 252 is described in more detailin FIG. 3 below for image 300. In certain embodiments, rather thandetermining POI 256, data collection engine 230 may receive image 252from data collection engine 230 with POI 256 included.

Pixel engine 232 of locator module 120 is an application that analyzespixels of image 252. Pixel engine 232 may receive image 252 with POI 256from data collection engine 230 and determine a number of pixels fromPOI 256 of image 252 to an edge of image 252. The edge of image 252represents a location of camera 140. Pixel engine 232 may convert eachpixel from POI 256 to the edge of image 252 to an equivalent distance.Each pixel may be associated with a different distance due to the cameraview angle. The process of converting the pixels to a distance isdescribed in more detail in FIG. 3 below for image 300.

Locator engine 234 of locator module 120 is an application thatdetermines POI location 260 associated with physical object 160. Locatorengine 234 may determine first distance 190 from POI 256 to camera 140using the number of pixels and an angle of camera 140 (e.g., camera viewangle 142 of FIG. 1 ). Locator engine 234 may determine second distance192 from camera 140 to GPS unit 150. Second distance 192 may be apredetermined distance based on the relative locations of camera 140 andGPS unit 150. Locator engine 234 may add first distance 190 to seconddistance 192 to determine offset distance 194.

In certain embodiments, locator engine 234 receives GPS location 258from data collection engine 230 and determines POI location 260associated with physical object 160 of FIG. 1 using GPS location 258,offset distance 194, and the travel direction of vehicle 130 of FIG. 1 .For example, locator engine 234 may receive GPS location 258 from datacollection engine 230 represented by latitude and longitude coordinates(e.g., N38 03.9325, W97 18.7658) or any other suitable representation.Locator engine 234 may receive an indication from data collection engine230 that vehicle 130 of FIG. 1 is traveling in a descending direction.Locator engine 234 may adjust GPS location 258 to account for offsetdistance 194 (e.g., 39.2 feet) and the travel direction, which yieldsPOI location 260 (e.g., Lat=38.06555556, long=−97.3127778). POI location260 represents the geographical location of physical object 160 of FIG.1 transposed to the centerline of railroad track 180 of FIG. 1 . Incertain embodiments, physical object 160 is a PTC critical asset.

In certain embodiments, a program external to system 200 (e.g., a webservice and/or cloud service program) may perform one or moredeterminations for locator engine 234. For example, a user (e.g., anadministrator of system 200) may input GPS location 258, offset distance194, and the travel direction into an external program, and the webservice program may generate POI location 260.

Comparison engine 236 of locator module 120 is an application thatcompares two determined locations associated with physical object 160 ofFIG. 1 . Comparison engine 236 may compare POI location 260 to a fieldlocation 262 associated with physical object 160. Field location 262 isa location that is determined by field measurement. Comparison engine236 may determine whether POI location 260 and field location 262 arewithin a predetermined distance of each other. The predetermineddistance may be a distance that is less than or equal to twenty feet(e.g., one foot, three feet, or ten feet). The predetermined distancemay be determined based on one or more requirements (e.g., an auditingrequirement). In the event that comparison engine 236 determines thatPOI location 260 and field location 262 are within a predetermineddistance of each other, comparison engine 236 may generate an indicationthat the location of physical object 160 complies with one or morerequirements (e.g., a PTC compliance requirement). In the event thatcomparison engine 236 determines that POI location 260 and fieldlocation 262 are separated by more than the predetermined distance,comparison engine 236 may generate an indication that the location ofphysical object 160 does not comply with one or more requirements. Forexample, comparison engine 236 may apply a defect to physical object160.

In certain embodiments, comparison engine 236 may generate a report thatindicates which physical objects 160 are defective and/or which physicalobjects 160 are in compliance. In certain embodiments, comparison engine236 may generate instructions in response to determining that one ormore physical objects 160 are defective or in compliance. Theinstructions may include actions to be taken such as performing one ormore field measurements for all defective physical objects 160.

Database 250 of locator module 120 may store certain types ofinformation for locator module 120. For example, database 250 may storeone or more images 252, object POIs 254, POIs 256, GPS locations 258,POI locations 260, first distances 190, second distances 192, offsetdistances 194, and field locations 262. Database 250 may be any one or acombination of volatile or non-volatile local or remote devices suitablefor storing information. Database 250 may include RAM, ROM, magneticstorage devices, optical storage devices, or any other suitableinformation storage device or a combination of these devices. Database250 may be a component external to locator module 120. Database 250 maybe located in any location suitable for database 250 to storeinformation for locator module 120. For example, database 250 may belocated in a cloud environment.

Processor 226 of locator module 120 controls certain operations oflocator module 120 by processing information received from interface 222and memory 224 or otherwise accessed by processor 226. Processor 226communicatively couples to interface 222 and memory 224. Processor 226may include any hardware and/or software that operates to control andprocess information. Processor 226 may be a programmable logic device, amicrocontroller, a microprocessor, any suitable processing device, orany suitable combination of the preceding. Additionally, processor 226may be a component external to locator module 120. Processor 226 may belocated in any location suitable for processor 226 to communicate withlocator module 120. Processor 226 of locator module 120 controls theoperations of data collection engine 230, pixel engine 232, locatorengine 234, and comparison engine 236.

Camera 140 of system 200 captures images 252 of one or more physicalobjects. For example, camera 140 of system 200 may be attached to afront end of a geometry car traveling along a railroad track and maycapture image 252 of a physical object within the railroad environmentassociated with the railroad track. GPS unit 150 of system 200 capturesone or more GPS locations 258. For example, GPS unit 150 may be attachedto a center portion of the geometry car traveling along the railroadtrack and capture GPS location 258 of GPS unit 150 at the time camera140 captures image 252. Camera 140 and GPS unit 150 communicate images252 and GPS locations 258 to locator module 120 via network 110, andlocator module 120 uses data collection engine 230, pixel engine 232,and/or locator engine 234 to determine POI locations 260 associated withthe physical objects. Locator module 120 may then use comparison engine236 to compare POI locations to field locations 262. As such, system 200may be used to verify the locations of physical objects (e.g., PTCcritical assets) within a railroad environment.

Although FIG. 2 illustrates a particular arrangement of network 110,locator module 120, interface 222, memory 224, processor 226, datacollection engine 230, pixel engine 232, locator engine 234, comparisonengine 236, database 250, camera 140, and GPS unit 150, this disclosurecontemplates any suitable arrangement of network 110, locator module120, interface 222, memory 224, processor 226, data collection engine230, pixel engine 232, locator engine 234, comparison engine 236,database 250, camera 140, and GPS unit 150. Network 110, locator module120, interface 222, memory 224, processor 226, data collection engine230, pixel engine 232, locator engine 234, comparison engine 236,database 250, camera 140, and GPS unit 150 may be physically orlogically co-located with each other in whole or in part.

FIG. 3 shows an example image 300 that may be used by the systems ofFIGS. 1 and 2 . Image 300 may represent one or more images 252 of FIG. 2. Image 300 may be generated by camera 140 of FIG. 1 and/or FIG. 2 .Image 300 includes object 310. Object 310 is a representation ofphysical object 160 of FIG. 1 as captured by camera 140. In theillustrated embodiment of FIG. 3 , object 310 is a graphicalrepresentation of a mile post sign. Image 300 includes railroad track320. Railroad track 320 is a representation of railroad track 180 ofFIG. 1 . Railroad track 320 of image 300 includes two rails. Centerline330 of railroad track 320 is a reference line that is centered betweenthe two outer rails of railroad track 320.

Image 300 of FIG. 3 includes object POI 340. Object POI 340 mayrepresent object POI 254 of system 200 of FIG. 2 . Object POI 340 is aspecific reference point within object 310 of image 300. In theillustrated embodiment of FIG. 3 , object POI 340 is located at the baseof object 310. Image 300 includes POI 350. POI 350 may represent POI 256of FIG. 2 . POI 350 represents a location of object POI 340 transposed adistance 360 to centerline 330 of railroad track 320. Distance 360 maybe measured perpendicularly from centerline 330 of railroad track 320 toobject POI 340. Distance 360 may be measured horizontally from POI 350to object POI 340 in relation to an edge (e.g., image edge 370) of image300.

Image 300 has a horizontal measurement and a vertical measurementexpressed in pixels. Each pixel of image 300 is a unit of programmablecolor in image 300. The pixel dimensions of image 300 are expressed as anumber of pixels horizontally and a number of pixels vertically thatdefine the resolution of image 300. Each pixel may be converted to alinear distance. The pixel conversion may depend on the camera viewangle (e.g., camera view angle 142 of FIG. 1 ) such that each pixelcorresponds to a different distance.

Image edge 370 of FIG. 3 represents an outer boundary of image 300.Image edge 370 may correspond to a location of camera 140 of FIG. 1 suchthat distance 380 from POI 350 to image edge 370 represents the distancefrom POI 350 to camera 140 (e.g., a lens of camera 140) of FIG. 1 .Distance 380 may be measured perpendicularly from image edge 370 to POI350. Distance 360 may be measured from image edge 370 to POI 350 alongcenterline 330 of railroad track 320. Distance 380 may be represented asa number of pixels n, where n represents any suitable integer (e.g., 200pixels). The number of pixels may be converted to a linear measurement(e.g., 254.63 inches or 21.2 feet). The linear measurement may berepresented by any suitable measurement (e.g., inches, feet, meters,centimeters, etc.) As such, image 300 of FIG. 3 may be used to determinedistance 380 (e.g., first distance 190 of FIG. 1 ) from POI 350 tocamera 140 of FIG. 1 without field measurement, which may improve theefficiency and accuracy of locating objects within an environment.

Modifications, additions, or omissions may be made to image 300 depictedin FIG. 3 . For example, image 300 may include more or less than tworailroad tracks. As another example, image 300 may include more than oneobject 310. Although image 300 of FIG. 3 illustrates a particulararrangement of object 310 and track 320, this disclosure contemplatesany suitable arrangement of object 310 and track 320. For example,object 310 may be located on the opposite side of track 320.

FIG. 4 illustrates an example output 400 that may be generated by system100 of FIG. 1 and/or system 200 of FIG. 2 . In the illustratedembodiment of FIG. 4 , output 400 is represented by a screenshot. Output400 includes railroad track 410, railroad track 420, GPS input 430,offset input 440, location output 450, and location output 460. Railroadtrack 410 and railroad track 420 represent centerlines of adjacentrailroad tracks in a railroad environment.

GPS input 430 of FIG. 4 represents an input of a GPS location (e.g., GPSlocation 258 of FIG. 2 ). The GPS location may be generated by a GPSunit (e.g., GPS unit 150 of FIG. 1 ) mounted to the top of a vehicle(e.g., vehicle 130 of FIG. 1 ). The GPS location may be captured at atime when a camera (e.g., camera 140 of FIG. 1 ) captures an image of aphysical object (e.g., physical object 160 of FIG. 1 ) in a railroadenvironment.

GPS input 430 is represented as a latitude coordinate and a longitudecoordinate. In certain embodiments, an administrator (e.g., a railwayengineer) may enter GPS input 430 into a program (e.g., a web serviceprogram). As illustrated in output 400 of FIG. 4 , GPS input 430 islocated relative to railroad track 410. In certain embodiments, railroadtrack 410 is selected in lieu of railroad track 420 due to the GPSlocation of GPS input 430 being closer in distance to railroad track 410than railroad track 420.

Offset input 440 of FIG. 4 represents an input of an offset distance(e.g., offset distance 194 of FIG. 1 ) as measured between the physicalobject captured by the camera mounted to the vehicle and the GPS unitmounted to the vehicle. Offset input 440 is used to modify GPS input 430to account for the offset distance. As illustrated in output 400 of FIG.4 , a circle is generated around the intersection of GPS input 430 andrailroad track 410. The radius of the circle is equal to the offsetdistance. Location output 450 represents the distance from GPS input 430as offset by offset distance 194 in a first direction (e.g., east) alongrailroad track 410. Location output 460 represents the distance from GPSinput 430 as offset by offset distance 194 in a second direction alongrailroad track 410. Location output 450 is selected as the POI location(e.g., POI location 260 of FIG. 2 ) associated with the physical objectif the train is traveling in the first direction (e.g., east). Locationoutput 460 is selected as the POI location associated with the physicalobject if the train is traveling in the second direction (e.g., west).

Modifications, additions, or omissions may be made to output 400depicted in FIG. 4 . For example, output 400 may include more or lessthan two railroad tracks. As another example, output 400 may includemore or less than two location outputs. As still another example, output400 may include values (e.g., numeric or alphanumeric values)representative of GPS input 430, offset input 440, location output 450,and/or location output 450.

FIG. 5 illustrates an example method 500 for locating objects. Method500 begins at step 505. At step 510, a locator module (e.g., locatormodule 120 of FIG. 2 ) receives a GPS location generated by a GPS unit(e.g., GPS unit 150 of FIG. 1 ) associated with a vehicle (e.g., vehicle130 of FIG. 1 ). The GPS unit may be attached to a center portion of theroof of the vehicle. The vehicle may be a geometry car that travelsalong a railroad track of a railroad environment. The GPS location maybe represented by latitude and longitude coordinates (e.g., N38 03.9325,W97 18.7658) or any other suitable representation. Method 500 then movesfrom step 510 to step 515.

At step 515, the locator module receives an image (e.g., image 300 ofFIG. 3 ) generated by a camera (e.g., camera 140 of FIG. 1 ) associatedwith the vehicle. The camera may be attached to a front end of the roofof the vehicle. The image may be an image of the railroad environment ascaptured from the front end of the vehicle. Method 500 then moves fromstep 515 to step 520. At step 520, the locator module detects an objectin the image. The object may represent a physical object (e.g., physicalobject 160 of FIG. 1 ) within the railroad environment, such as atrain-controlled signal, a switch point, a crossing, a mile post sign, aspeed sign, a clearance point, etc. In certain embodiments, the objectrepresents a PTC critical asset. Method 500 then moves from step 520 tostep 525.

At step 525, the locator module determines an object POI in the detectedobject of the image. The object POI is a specific point within theobject. For example, the object POI may be a specific point at thebottom of a mile post sign. Method 500 then moves from step 525 to step530, where the locator module maps the object POI to a centerline of arailroad track in the image to generate a POI. The POI represents alocation of the physical object transposed to the centerline of therailroad track. Method 500 then moves from step 530 to step 535.

At step 535, the locator module determines a number of pixels from thePOI of the image to an edge of the image. The edge of the imagerepresents a location of the camera. The locator module may convert thenumber of pixels to a linear distance. Method 500 then moves from step535 to step 540, where the locator module determines a first distance(e.g., first distance 190 of FIG. 1 ) from the POI to the camera usingthe number of pixels and an angle of the camera (e.g., camera view angle142 of FIG. 1 ). The first distance may be represented as a linearhorizontal distance (e.g., 21.2 feet) as measured along the centerlineof the railroad track. The linear horizontal distance may be representedby any suitable measurement (e.g., inches, feet, meters, centimeters,etc.) Method 500 then moves from step 540 to step 545.

At step 545, the locator module determines a second distance (e.g.,second distance 192 of FIG. 1 ) from the camera to the GPS unit. Thesecond distance may be a predetermined distance between the location ofthe camera mounted on the vehicle and the location of the GPS unitmounted on the vehicle. The second distance may be represented as alinear horizontal distance (e.g., 18 feet) as measured along thecenterline of the railroad track. The linear horizontal distance may berepresented by any suitable measurement (e.g., inches, feet, meters,centimeters, etc.) Method 500 then moves from step 545 to step 550,where the locator module adds the first distance to the second distanceto determine an offset distance (e.g., offset distance 194 of FIG. 1 )from the POI to the GPS unit. The offset distance may be represented asa linear horizontal distance (e.g., 39.2 feet) as measured along thecenterline of the railroad track. The linear horizontal distance may berepresented by any suitable measurement (e.g., inches, feet, meters,centimeters, etc.) Method 500 then moves from step 550 to step 555.

At step 555, the locator module determines a travel direction (e.g.,east or west) of the vehicle along the railroad track at the time theGPS location and the image were captured. Method 500 then moves fromstep 555 to step 560, where the locator module determines a POI locationassociated with the physical object using the GPS location, the offsetdistance, and the travel direction of the vehicle. For example, thelocator module may modify the GPS location (e.g., N38 03.9325, W9718.7658) by the offset distance (e.g., 39.2 feet) and the vehicle traveldirection (e.g., east) to generate a geographical POI location (e.g.,Lat=38.06555556, long=−97.3127778). The geographical POI location may berepresented by any suitable representation. Method 500 then moves fromstep 560 to step 565.

At step 565, locator module compares the POI location to a fieldlocation (e.g., field location 262 of FIG. 2 ). The field locationrepresents a location of the physical object as measured in the field.Method 500 then moves from step 565 to step 570, where the locatormodule determines whether the POI location and the field location areseparated by more than a predetermined distance (e.g., three feet). Ifthe locator module determines that the POI location and the fieldlocation are separated by more than the predetermined distance, method500 moves from step 570 to step 575, where the locator module applies adefect to the physical object. If the locator module determines that thePOI location and the field location are not separated by more than thepredetermined distance, method 500 moves from step 570 to step 580,where the locator module verifies the location of physical object.Method 500 then moves from steps 575 and 580 to step 585, where method500 ends.

Modifications, additions, or omissions may be made to method 500depicted in FIG. 5 . Method 500 may include more, fewer, or other steps.For example, method 500 may include generating a report in response toapplying a defect to the physical object at step 575 and/or in responseto verifying the location of the physical object at step 580. Steps maybe performed in parallel or in any suitable order. While discussed asspecific components completing the steps of method 500, any suitablecomponent may perform any step of method 500. For example, a web servicemay determine the geographical location of the POI at step 560.

FIG. 6 shows an example computer system that may be used by the systemsand methods described herein. For example, network 110, locator module120, camera 140, and/or GPS unit 150 of FIG. 1 may include one or moreinterface(s) 610, processing circuitry 620, memory(ies) 630, and/orother suitable element(s). Interface 610 (e.g., interface 222 of FIG. 2) receives input, sends output, processes the input and/or output,and/or performs other suitable operation. Interface 610 may includehardware and/or software.

Processing circuitry 620 (e.g., processor 226 of FIG. 2 ) performs ormanages the operations of the component. Processing circuitry 620 mayinclude hardware and/or software. Examples of a processing circuitryinclude one or more computers, one or more microprocessors, one or moreapplications, etc. In certain embodiments, processing circuitry 620executes logic (e.g., instructions) to perform actions (e.g.,operations), such as generating output from input. The logic executed byprocessing circuitry 620 may be encoded in one or more tangible,non-transitory computer readable media (such as memory 630). Forexample, the logic may include a computer program, software, computerexecutable instructions, and/or instructions capable of being executedby a computer. In particular embodiments, the operations of theembodiments may be performed by one or more computer readable mediastoring, embodied with, and/or encoded with a computer program and/orhaving a stored and/or an encoded computer program.

Memory 630 (or memory unit) stores information. Memory 630 (e.g., memory224 of FIG. 2 ) may include one or more non-transitory, tangible,computer-readable, and/or computer-executable storage media. Examples ofmemory 630 include computer memory (for example, RAM or ROM), massstorage media (for example, a hard disk), removable storage media (forexample, a Compact Disk (CD) or a Digital Video Disk (DVD)), databaseand/or network storage (for example, a server), and/or othercomputer-readable medium.

Herein, a computer-readable non-transitory storage medium or media mayinclude one or more semiconductor-based or other integrated circuits(ICs) (such as field-programmable gate arrays (FPGAs) orapplication-specific ICs (ASICs)), hard disk drives (HDDs), hybrid harddrives (HHDs), optical discs, optical disc drives (ODDs),magneto-optical discs, magneto-optical drives, floppy diskettes, floppydisk drives (FDDs), magnetic tapes, solid-state drives (SSDs),RAM-drives, SECURE DIGITAL cards or drives, any other suitablecomputer-readable non-transitory storage media, or any suitablecombination of two or more of these, where appropriate. Acomputer-readable non-transitory storage medium may be volatile,non-volatile, or a combination of volatile and non-volatile, whereappropriate.

Herein, “or” is inclusive and not exclusive, unless expressly indicatedotherwise or indicated otherwise by context. Therefore, herein, “A or B”means “A, B, or both,” unless expressly indicated otherwise or indicatedotherwise by context. Moreover, “and” is both joint and several, unlessexpressly indicated otherwise or indicated otherwise by context.Therefore, herein, “A and B” means “A and B, jointly or severally,”unless expressly indicated otherwise or indicated otherwise by context.

The scope of this disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsdescribed or illustrated herein that a person having ordinary skill inthe art would comprehend. The scope of this disclosure is not limited tothe example embodiments described or illustrated herein. Moreover,although this disclosure describes and illustrates respectiveembodiments herein as including particular components, elements,feature, functions, operations, or steps, any of these embodiments mayinclude any combination or permutation of any of the components,elements, features, functions, operations, or steps described orillustrated anywhere herein that a person having ordinary skill in theart would comprehend. Furthermore, reference in the appended claims toan apparatus or system or a component of an apparatus or system beingadapted to, arranged to, capable of, configured to, enabled to, operableto, or operative to perform a particular function encompasses thatapparatus, system, component, whether or not it or that particularfunction is activated, turned on, or unlocked, as long as thatapparatus, system, or component is so adapted, arranged, capable,configured, enabled, operable, or operative. Additionally, although thisdisclosure describes or illustrates particular embodiments as providingparticular advantages, particular embodiments may provide none, some, orall of these advantages.

What is claimed is:
 1. A method, comprising: determining a point ofinterest (POI) in an image generated by a camera associated with avehicle, wherein the POI is associated with a physical object;determining a first distance from the POI to the camera using pixelsfrom the image and an angle of the camera; determining a second distancefrom the camera to a Global Positioning System (GPS) unit associatedwith the vehicle; and adding the first distance to the second distanceto determine an offset distance from the POI to the GPS unit associatedwith the vehicle.
 2. The method of claim 1, further comprising;receiving a GPS location generated by the GPS unit associated with thevehicle, wherein the GPS location is represented by latitude andlongitude coordinates; determining a travel direction of the vehiclealong a railroad track, wherein the vehicle is a track geometry car; anddetermining a POI location associated with the physical object using theGPS location, the offset distance, and the travel direction of thevehicle, wherein the POI location is represented by latitude andlongitude coordinates.
 3. The method of claim 1, wherein; the camera ismounted to a front top end of the vehicle; and the GPS unit is mountedto a center top portion of the vehicle.
 4. The method of claim 1,further comprising; detecting an object in the image; determining anobject POI in the detected object of the image; and mapping the objectPOI to a center of a railroad track in the image to generate the POI. 5.The method of claim 1, further comprising; comparing the POI locationassociated with the physical object to a field measurement locationassociated with the physical object; determining that the P01 locationand the field measurement location are separated by more than apredetermined distance; and applying a defect to the physical object inresponse to determining that the POI location and the field measurementlocation are separated by more than a predetermined distance.
 6. Themethod of claim 1, wherein determining a first distance from the POI tothe camera using pixels from the image comprises converting each of thepixels to a distance, each of the pixels being associated with adifferent distance.
 7. The method of claim 1, wherein the physicalobject represents at least one of the following positive train control(PTC) critical assets; a train-controlled signal; a switch point; acrossing; a mile post sign; a speed sign; and a clearance point.
 8. Asystem comprising one or more processors and a memory storinginstructions that, when executed by the one or more processors, causethe one or more processors to perform operations comprising: determininga point of interest (POI) in an image generated by a camera associatedwith a vehicle, wherein the POI is associated with a physical object;determining a first distance from the POI to the camera using pixelsfrom the image and an angle of the camera; determining a second distancefrom the camera to a Global Positioning System (GPS) unit associatedwith the vehicle; and adding the first distance to the second distanceto determine an offset distance from the POI to the GPS unit associatedwith the vehicle.
 9. The system of claim 8, the operations furthercomprising; receiving a GPS location generated by the GPS unitassociated with the vehicle, wherein the GPS location is represented bylatitude and longitude coordinates; determining a travel direction ofthe vehicle along a railroad track, wherein the vehicle is a trackgeometry car; and determining a POI location associated with thephysical object using the GPS location, the offset distance, and thetravel direction of the vehicle, wherein the POI location is representedby latitude and longitude coordinates.
 10. The system of claim 8,wherein; the camera is mounted to a front top end of the vehicle; andthe GPS unit is mounted to a center top portion of the vehicle.
 11. Thesystem of claim 8, the operations further comprising; detecting anobject in the image; determining an object POI in the detected object ofthe image; and mapping the object POI to a center of a railroad track inthe image to generate the POI.
 12. The system of claim 8, the operationsfurther comprising; comparing the POI location associated with thephysical object to a field measurement location associated with thephysical object; determining that the POI location and the fieldmeasurement location are separated by more than a predetermineddistance; and applying a defect to the physical object in response todetermining that the POI location and the field measurement location areseparated by more than a predetermined distance.
 13. The system of claim8, wherein determining a first distance from the POI to the camera usingpixels from the image comprises converting each of the pixels to adistance, each of the pixels being associated with a different distance.14. The system of claim 8, wherein the physical object represents atleast one of the following positive train control (PTC) critical assets;a train-controlled signal; a switch point; a crossing; a mile post sign;a speed sign; and a clearance point.
 15. One or more non-transitorycomputer-readable storage media embodying instructions that, whenexecuted by a processor, cause the processor to perform operationscomprising: determining a point of interest (POI) in an image generatedby a camera associated with a vehicle, wherein the POI is associatedwith a physical object; determining a first distance from the POI to thecamera using pixels from the image and an angle of the camera;determining a second distance from the camera to a Global PositioningSystem (GPS) unit associated with the vehicle; and adding the firstdistance to the second distance to determine an offset distance from thePOI to the GPS unit associated with the vehicle.
 16. The one or morenon-transitory computer-readable storage media of claim 15, theoperations further comprising; receiving a GPS location generated by theGPS unit associated with the vehicle, wherein the GPS location isrepresented by latitude and longitude coordinates; determining a traveldirection of the vehicle along a railroad track, wherein the vehicle isa track geometry car; and determining a POI location associated with thephysical object using the GPS location, the offset distance, and thetravel direction of the vehicle, wherein the POI location is representedby latitude and longitude coordinates.
 17. The one or morenon-transitory computer-readable storage media of claim 15, wherein; thecamera is mounted to a front top end of the vehicle; and the GPS unit ismounted to a center top portion of the vehicle.
 18. The one or morenon-transitory computer-readable storage media of claim 15, theoperations further comprising: detecting an object in the image;determining an object POI in the detected object of the image; andmapping the object POI to a center of a railroad track in the image togenerate the POI.
 19. The one or more non-transitory computer-readablestorage media of claim 15, the operations further comprising: comparingthe POI location associated with the physical object to a fieldmeasurement location associated with the physical object; determiningthat the POI location and the field measurement location are separatedby more than a predetermined distance; and applying a defect to thephysical object in response to determining that the POI location and thefield measurement location are separated by more than a predetermineddistance.
 20. The one or more non-transitory computer-readable storagemedia of claim 15, wherein determining a first distance from the POI tothe camera using pixels from the image comprises converting each of thepixels to a distance, each of the pixels being associated with adifferent distance.